fdf309223c182ca5b9b901c85bc082b698c958a9,carbon/src/main/java/carbon/widget/FlowLayout.java,FlowLayout,dispatchDraw,#Canvas#,136
Before Change
@Override
protected void dispatchDraw(@NonNull Canvas canvas) {
// draw not called, we have to handle corners here
if (cornerRadius > 0 && !drawCalled && getWidth() > 0 && getHeight() > 0 && Build.VERSION.SDK_INT <= Build.VERSION_CODES.KITKAT_WATCH) {
int saveCount = canvas.saveLayer(0, 0, getWidth(), getHeight(), null, Canvas.ALL_SAVE_FLAG);
internalDispatchDraw(canvas);
paint.setXfermode(pdMode);
canvas.drawPath(cornersMask, paint);
canvas.restoreToCount(saveCount);
paint.setXfermode(null);
After Change
@Override
protected void dispatchDraw(@NonNull Canvas canvas) {
boolean r = reveal != null;
boolean c = cornerRadius > 0;
// draw not called, we have to handle corners here
if (!drawCalled && (r || c) && getWidth() > 0 && getHeight() > 0 && Build.VERSION.SDK_INT <= Build.VERSION_CODES.KITKAT_WATCH) {
int saveCount = canvas.saveLayer(0, 0, getWidth(), getHeight(), null, Canvas.FULL_COLOR_LAYER_SAVE_FLAG);
if (r) {
int saveCount2 = canvas.saveLayer(0, 0, getWidth(), getHeight(), null, Canvas.CLIP_SAVE_FLAG);
canvas.clipRect(reveal.x - reveal.radius, reveal.y - reveal.radius, reveal.x + reveal.radius, reveal.y + reveal.radius);
internalDispatchDraw(canvas);
canvas.restoreToCount(saveCount2);
} else {
internalDispatchDraw(canvas);
}
paint.setXfermode(pdMode);
if (c)
canvas.drawPath(cornersMask, paint);
if (r)
canvas.drawPath(reveal.mask, paint);
canvas.restoreToCount(saveCount);
paint.setXfermode(null);
} else {
internalDispatchDraw(canvas);
}
drawCalled = false;
}